home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / source / snip9503 / reversi.c < prev    next >
C/C++ Source or Header  |  1995-03-14  |  3KB  |  73 lines

  1. #define X N(a,O(h,W(f,M(c,g))),O(i,W(f,M(d,g))))
  2. #define A(x) r(D(x,1); O(x,-9); D(x,O(x,1)))
  3. #define L(x) toupper(getchar())-x
  4. #define R Z,Z,0,0
  5. #define S 0,9,6,6,6,6,6,6,9,0
  6. #define q D(h,0); A(f)A(g)
  7. #define T 0,6,1,2,2,2,2,1,6,0
  8. #define U 0,6,2,3,3,3,3,2,6,0
  9. #define C(x) ((x<1)||(x>8))
  10. #define F(x,y) printf(x,y);
  11. #define N(x,y,z) *O(*O(x,y),z)
  12. #define y(a,b,c) a[b][c]
  13. #define O(x,y) ((x)+(y))
  14. #define u(x) (O(0,-(x)))
  15. #define W(x,y) ((x)*(y))
  16. #define G(x) printf(x);
  17. #define D(x,y) (x=(y))
  18. #define P (rand()%6)
  19. #define Y D(e,O(e,1))
  20. #define s D(f,O(f,Q))
  21. #define H(x) return x
  22. #define B(x) while(x)
  23. #define M(x,y) *O(x,y)
  24. #define z(a,b) a[b]
  25. #define E(x) if(x)
  26. #define I main(){
  27. #define Z 0,0,0,0
  28. #define t G("\n")
  29. #define V(x) (!x)
  30. #define v h,i,j,k
  31. #define w e,f,g
  32. #define J int
  33. #define Q u(1)
  34. #define p "%c"
  35. #define o 'A'
  36. #define r for
  37. #define n 60
  38. #define K do
  39.  
  40. J y(a,10,10)={R,R,R,R,Z,1,Q,Z,Z,Q,1,R,R,R,R,Z},y(b,10,10)={R,S,T,
  41. U       ,       U       ,       U       ,       U       ,       T
  42. ,       S       ,       R       }       ,       z       (       c
  43. ,       9       )       =       {       Q       ,       Q       ,
  44. Q,0,0,1,1,1,0},z(d,9)={Q,0,1,Q,1,Q,0,1,0};I J w,v;l();r(D(e,0);O(
  45. e       ,       -       n       )       ;       Y       )       {
  46. q       D       (       h       ,       O       (       h       ,
  47. m       (       f       ,       g       ,       1       ,       1
  48. )));E(h){K{G("\n?")K{D(f,L(O('A',Q)));}B(C(f));K{D(g,L('0'));}B(C
  49. (       g       )       )       ;       }       B       (       V
  50. (       m       (       f       ,       g       ,       1       ,
  51. Q       )       )       )       ;       l       (       )       ;
  52. }q E((D(k,O(m(f,g,Q,1),P)))>h){D(h,k);D(i,f);D(j,g);}E(h&&m(i,j,Q
  53. ,       Q       )       ) /***/ l /***/ (       )       ;       }
  54. }       J       m       (/*   */v/*****/)       J       v       ;
  55. {       J       w       ; /***/ E /***/ (       N       (       a
  56. ,h,i))H(0);E(O(k,Q))D(N(a,h,i),j);D(e,N(b,h,i));r(D(g,1);O(g,-9);
  57. D       (       g       , /***/ O /***/ (       g       ,       1
  58. )       )       )       {/*****/D/*   */(       g       ,       O
  59. (       g       ,       Q /***/ ) /***/ )       ;       E       (
  60. V(O(N(a,O(h,M(c,g)),O(i,M(d,g))),j))){r(D(f,1);V(O(X,j));D(f,O(f,
  61. 1       )       )       )       ;       E       (       V       (
  62. O       (       N       (       a       ,       O       (       h
  63. ,       W       (       f       ,       M       (       c       ,
  64. g))),O(i,W(f,M(d,g)))),u(j))))r(s;f;s){X=X*k;D(e,O(e,N(b,O(h,W(f,
  65. M       (       c       ,       g       )       )       )       ,
  66. O       (       i       ,       W       (       f       ,       M
  67. (       d       ,       g       )       )       )       )       )
  68. );}}D(g,O(g,1));}E(V(O(e,u(N(b,h,i))))){D(N(a,h,i),0);H(0);}H(e);
  69. }       l       (       )       {       J       f       ,       g
  70. ;       t       A       (       g       )       {       F       (
  71. p       ,       O       (       O       (       o       ,       g
  72. ),Q))A(f)F("%c:",M("X O<",O(N(a,g,f),1)))t}G(" ")A(f)F("%d ",f)t}
  73.